package com.ruoyi.system.domain.vo;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author : 王孟轩
 * @date : 2025/2/24 22:00
 * @description : 资金账户值对象，用于封装和传递资金账户的详细信息
 **/
public class CapitalAccountVO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 资金账户表唯一标识
     */
    private Long id;

    /**
     * 资金账户编码
     */
    private String accountCoding;

    /**
     * 资金账户名称
     */
    private String accountTitle;

    /**
     * 账户余额
     */
    private BigDecimal accountBalance;

    /**
     * 银行类别id
     */
    private Integer bankId;

    /**
     * 银行卡号
     */
    private long  cardNumber;

    /**
     * 银企互联
     */
    private String interconnect;

    /**
     * 绑定日期
     */
    private Date createdDate;

    /**
     * 到期日期
     */
    private Date maturityDate;

    /**
     * 币别id
     */
    private Integer currencyId;

    /**
     * 会计科目id
     */
    private Integer subjectId;

    /**
     * 账户状态（1：启用   2：弃用   3：删除）
     */
    private Integer codingState;

    /**
     * 账户类别（1：银行账户  2：现金账户）
     */
    private Integer accountSort;

    // Getters and Setters

    /**
     * 获取资金账户表唯一标识
     *
     * @return 资金账户表唯一标识
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置资金账户表唯一标识
     *
     * @param id 资金账户表唯一标识
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取资金账户编码
     *
     * @return 资金账户编码
     */
    public String getAccountCoding() {
        return accountCoding;
    }

    /**
     * 设置资金账户编码
     *
     * @param accountCoding 资金账户编码
     */
    public void setAccountCoding(String accountCoding) {
        this.accountCoding = accountCoding;
    }

    /**
     * 获取资金账户名称
     *
     * @return 资金账户名称
     */
    public String getAccountTitle() {
        return accountTitle;
    }

    /**
     * 设置资金账户名称
     *
     * @param accountTitle 资金账户名称
     */
    public void setAccountTitle(String accountTitle) {
        this.accountTitle = accountTitle;
    }

    /**
     * 获取账户余额
     *
     * @return 账户余额
     */
    public BigDecimal getAccountBalance() {
        return accountBalance;
    }

    /**
     * 设置账户余额
     *
     * @param accountBalance 账户余额
     */
    public void setAccountBalance(BigDecimal accountBalance) {
        this.accountBalance = accountBalance;
    }

    /**
     * 获取银行类别id
     *
     * @return 银行类别id
     */
    public Integer getBankId() {
        return bankId;
    }

    /**
     * 设置银行类别id
     *
     * @param bankId 银行类别id
     */
    public void setBankId(Integer bankId) {
        this.bankId = bankId;
    }

    /**
     * 获取银行卡号
     *
     * @return 银行卡号
     */
    public long  getCardNumber() {
        return cardNumber;
    }

    /**
     * 设置银行卡号
     *
     * @param cardNumber 银行卡号
     */
    public void setCardNumber(long  cardNumber) {
        this.cardNumber = cardNumber;
    }

    /**
     * 获取银企互联
     *
     * @return 银企互联
     */
    public String getInterconnect() {
        return interconnect;
    }

    /**
     * 设置银企互联
     *
     * @param interconnect 银企互联
     */
    public void setInterconnect(String interconnect) {
        this.interconnect = interconnect;
    }

    /**
     * 获取绑定日期
     *
     * @return 绑定日期
     */
    public Date getCreatedDate() {
        return createdDate;
    }

    /**
     * 设置绑定日期
     *
     * @param createdDate 绑定日期
     */
    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    /**
     * 获取到期日期
     *
     * @return 到期日期
     */
    public Date getMaturityDate() {
        return maturityDate;
    }

    /**
     * 设置到期日期
     *
     * @param maturityDate 到期日期
     */
    public void setMaturityDate(Date maturityDate) {
        this.maturityDate = maturityDate;
    }

    /**
     * 获取币别id
     *
     * @return 币别id
     */
    public Integer getCurrencyId() {
        return currencyId;
    }

    /**
     * 设置币别id
     *
     * @param currencyId 币别id
     */
    public void setCurrencyId(Integer currencyId) {
        this.currencyId = currencyId;
    }

    /**
     * 获取会计科目id
     *
     * @return 会计科目id
     */
    public Integer getSubjectId() {
        return subjectId;
    }

    /**
     * 设置会计科目id
     *
     * @param subjectId 会计科目id
     */
    public void setSubjectId(Integer subjectId) {
        this.subjectId = subjectId;
    }

    /**
     * 获取账户状态（1：启用   2：弃用   3：删除）
     *
     * @return 账户状态
     */
    public Integer getCodingState() {
        return codingState;
    }

    /**
     * 设置账户状态（1：启用   2：弃用   3：删除）
     *
     * @param codingState 账户状态
     */
    public void setCodingState(Integer codingState) {
        this.codingState = codingState;
    }

    /**
     * 获取账户类别（1：银行账户  2：现金账户）
     *
     * @return 账户类别
     */
    public Integer getAccountSort() {
        return accountSort;
    }

    /**
     * 设置账户类别（1：银行账户  2：现金账户）
     *
     * @param accountSort 账户类别
     */
    public void setAccountSort(Integer accountSort) {
        this.accountSort = accountSort;
    }
}
